Skip to content
This repository has been archived by the owner on Dec 30, 2022. It is now read-only.

feat(queryRules): add context features to connector [part 3] #2258

Conversation

francoischalifour
Copy link
Member

Summary

This adds context-related features to the connectQueryRules connector. This allows to set rule contexts (called ruleContexts) of the search parameters based on active filters.

Query rules are by default generic when not provided any context. If you provide a context, they become contextual and are only triggered when the context is matched.

Implementation

The implementation is similar to algolia/instantsearch#3617 except that React InstantSearch relies on the search state, not on the helper search parameters. The search state drives the search parameters.

This brings two main limitations:

  • Configure doesn't update the search state. This was made by design. It is therefore not possible to set initial ruleContexts based on Configure. An alternative is to add an initial ruleContexts via transformRuleContexts.
  • Hierarchical Menu refinements are passed as a group. In the InstantSearch.js implementation, the helper gives us hierarchical values (e.g. Laptops > Surface['Laptops', 'Surface']). In React InstantSearch, there's no way to retrieve the separator value used and therefore no way to split the hierarchical value. Laptops > Surface remains as is and the hierarchical trackedFilters functions are called with these values.

Related

@francoischalifour francoischalifour requested a review from a team April 2, 2019 11:53
@algobot
Copy link
Contributor

algobot commented Apr 2, 2019

Deploy preview for react-instantsearch ready!

Built with commit acad72c

https://deploy-preview-2258--react-instantsearch.netlify.com

@francoischalifour francoischalifour force-pushed the feat/mqr-connectQueryRules-context branch from 50db24e to 81d3521 Compare April 2, 2019 12:02
@francoischalifour francoischalifour changed the title feat(connectQueryRules): add context features feat(queryRules): add context features to connector [part 3] Apr 3, 2019
@francoischalifour francoischalifour merged commit e83ca8e into feat/mqr-queryRuleCustomData Apr 8, 2019
@francoischalifour francoischalifour deleted the feat/mqr-connectQueryRules-context branch April 8, 2019 11:21
francoischalifour added a commit that referenced this pull request Apr 8, 2019
* feat(queryRules): add QueryRuleCustomData widget [part 2]

* feat(queryRules): add context features to connector [part 3] (#2258)

* feat(queryRules): add QueryRuleContext widget [part 4] (#2259)
francoischalifour added a commit that referenced this pull request Apr 8, 2019
* feat(queryRules): add connectQueryRules connector [part 1] (#2210)

* feat(queryRules): add QueryRuleCustomData widget [part 2] (#2212)

* feat(queryRules): add context features to connector [part 3] (#2258)

* feat(queryRules): add QueryRuleContext widget [part 4] (#2259)
francoischalifour added a commit that referenced this pull request Apr 8, 2019
* feat(queryRules): add connectQueryRules connector [part 1] (#2210)

* feat(queryRules): add QueryRuleCustomData widget [part 2] (#2212)

* feat(queryRules): add context features to connector [part 3] (#2258)

* feat(queryRules): add QueryRuleContext widget [part 4] (#2259)
francoischalifour added a commit that referenced this pull request Apr 8, 2019
* feat(queryRules): add connectQueryRules connector [part 1] (#2210)

* feat(queryRules): add QueryRuleCustomData widget [part 2] (#2212)

* feat(queryRules): add context features to connector [part 3] (#2258)

* feat(queryRules): add QueryRuleContext widget [part 4] (#2259)
francoischalifour added a commit that referenced this pull request Apr 8, 2019
* feat(queryRules): add connectQueryRules connector [part 1] (#2210)

* feat(queryRules): add QueryRuleCustomData widget [part 2] (#2212)

* feat(queryRules): add context features to connector [part 3] (#2258)

* feat(queryRules): add QueryRuleContext widget [part 4] (#2259)
Haroenv pushed a commit that referenced this pull request Apr 9, 2019
* feat(queryRules): add connectQueryRules connector [part 1] (#2210)

* feat(queryRules): add QueryRuleCustomData widget [part 2] (#2212)

* feat(queryRules): add context features to connector [part 3] (#2258)

* feat(queryRules): add QueryRuleContext widget [part 4] (#2259)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants